package com.sjzd.entity;

import com.sjzd.ConfigParser;

import java.awt.*;
import java.util.concurrent.atomic.AtomicInteger;

/**
 *  坦克血量实体
 */
public class Blood extends AbstractBase {
    // 血量
    private AtomicInteger volume;

    private ConfigParser configParser = ConfigParser.getInstance();

    public Blood(int X, int Y, int speed) {
        super(X,Y,speed);
        volume = new AtomicInteger(100);
    }

    @Override
    void draw(AbstractBase abstractBase, ConfigParser configParser, Graphics g) {
        if (abstractBase instanceof Tank) {
            Tank tank = (Tank)abstractBase;
            // 血条边框
            g.setColor(Color.BLACK);
            g.drawRect(tank.getBlood().X, tank.getBlood().Y - 5,
                    configParser.getBLOOD_WIDTH(), configParser.getBLOOD_HEIGHT());
            // 血条
            g.setColor(Color.RED);
            g.fillRect(tank.getBlood().X, tank.getBlood().Y - 5,
                    tank.getBlood().getVolume(), configParser.getBLOOD_HEIGHT());
        }
    }

    @Override
    Rectangle getRectangle() {
        return null;
    }


    public Integer getVolume() {
        float i = (float)volume.get();
        float tmp = i / 100;
        return Math.round(tmp * configParser.getBLOOD_WIDTH());
    }

    public Integer updateVolumeByVariation(int variation) {
        return volume.getAndAdd(variation);
    }
}
